// pages/profile/profile.js
Page({
  data: {
    userInfo: null,
    reportCount: 0,
    onlineTime: '2小时',
    helpRecordCount: 3,
    emergencyContactCount: 2,
    locationStatus: '已授权'
  },

  onLoad() {
    this.initUserData();
  },

  onShow() {
    // 页面显示时更新数据
    this.updatePageData();
  },

  // 初始化用户数据
  initUserData() {
    const userInfo = wx.getStorageSync('userInfo');
    const isLoggedIn = wx.getStorageSync('isLoggedIn');
    
    if (!isLoggedIn) {
      wx.reLaunch({
        url: '/pages/login/login'
      });
      return;
    }

    this.setData({
      userInfo: userInfo || {},
      reportCount: wx.getStorageSync('reportCount') || 0,
      helpRecordCount: wx.getStorageSync('helpRecordCount') || 3,
      emergencyContactCount: wx.getStorageSync('emergencyContactCount') || 2
    });
  },

  // 更新页面数据
  updatePageData() {
    // 更新在线时长等动态数据
    const loginTime = wx.getStorageSync('loginTime');
    if (loginTime) {
      const onlineHours = Math.floor((Date.now() - new Date(loginTime).getTime()) / (1000 * 60 * 60));
      this.setData({
        onlineTime: `${onlineHours}小时`
      });
    }
  },

  // 快速报警
  quickReport() {
    wx.showModal({
      title: '紧急报警',
      content: '确定要立即发送报警信号吗？',
      confirmText: '确定报警',
      confirmColor: '#ee0a24',
      success: (res) => {
        if (res.confirm) {
          this.sendEmergencyReport();
        }
      }
    });
  },

  // 查看历史记录
  viewHistory() {
    wx.showToast({
      title: '功能开发中',
      icon: 'none'
    });
    // TODO: 导航到历史记录页面
    // wx.navigateTo({
    //   url: '/pages/history/history'
    // });
  },

  // 安全指南
  safetyGuide() {
    wx.showModal({
      title: '安全指南',
      content: '1. 遇到霸凌立即报告\n2. 保护好个人信息\n3. 结伴同行\n4. 记住紧急电话',
      showCancel: false,
      confirmText: '知道了'
    });
  },

  // 联系客服
  contactHelp() {
    wx.showActionSheet({
      itemList: ['客服热线', '在线客服', '邮件联系'],
      success: (res) => {
        switch (res.tapIndex) {
          case 0:
            wx.makePhoneCall({
              phoneNumber: '400-123-4567'
            });
            break;
          case 1:
            wx.showToast({
              title: '客服功能开发中',
              icon: 'none'
            });
            break;
          case 2:
            wx.setClipboardData({
              data: 'support@campus-safety.com',
              success: () => {
                wx.showToast({
                  title: '邮箱已复制',
                  icon: 'success'
                });
              }
            });
            break;
        }
      }
    });
  },

  // 求助记录
  handleHelp() {
    wx.showToast({
      title: '功能开发中',
      icon: 'none'
    });
    // TODO: 导航到求助记录页面
  },

  // 安全设置
  handleSafetySettings() {
    wx.showActionSheet({
      itemList: ['自动报警设置', '声音监测敏感度', '位置共享设置', '紧急联系人'],
      success: (res) => {
        const titles = ['自动报警设置', '声音监测敏感度', '位置共享设置', '紧急联系人'];
        wx.showToast({
          title: `${titles[res.tapIndex]}功能开发中`,
          icon: 'none'
        });
      }
    });
  },

  // 紧急联系人
  handleEmergencyContacts() {
    wx.showModal({
      title: '紧急联系人',
      content: '当前已设置2个紧急联系人：\n1. 家长：138****1234\n2. 老师：139****5678',
      showCancel: true,
      cancelText: '返回',
      confirmText: '编辑'
    });
  },

  // 地理位置设置
  handleLocationSettings() {
    wx.showModal({
      title: '位置权限',
      content: '当前位置权限：已授权\n\n为了您的安全，建议保持位置权限开启',
      showCancel: true,
      cancelText: '关闭',
      confirmText: '重新授权',
      success: (res) => {
        if (res.confirm) {
          this.requestLocationPermission();
        }
      }
    });
  },

  // 请求位置权限
  requestLocationPermission() {
    wx.getLocation({
      type: 'gcj02',
      success: () => {
        wx.showToast({
          title: '位置权限已开启',
          icon: 'success'
        });
        this.setData({
          locationStatus: '已授权'
        });
      },
      fail: () => {
        wx.showModal({
          title: '位置权限',
          content: '请在设置中开启位置权限',
          showCancel: false
        });
        this.setData({
          locationStatus: '未授权'
        });
      }
    });
  },

  // 消息通知设置
  handleNotificationSettings() {
    wx.showModal({
      title: '通知设置',
      content: '是否允许接收安全提醒和警报通知？',
      cancelText: '关闭',
      confirmText: '开启',
      success: (res) => {
        if (res.confirm) {
          wx.showToast({
            title: '通知已开启',
            icon: 'success'
          });
        }
      }
    });
  },

  // 隐私政策
  handlePrivacyPolicy() {
    wx.showModal({
      title: '隐私政策',
      content: '我们承诺保护您的隐私安全，仅在紧急情况下使用您的位置信息...',
      showCancel: false,
      confirmText: '知道了'
    });
  },

  // 关于我们
  handleAbout() {
    wx.showModal({
      title: '关于我们',
      content: '校园防欺凌报警器 v1.0.0\n\n致力于打造安全的校园环境，保护每一个孩子的健康成长。\n\n技术支持：校园安全守护团队',
      showCancel: false,
      confirmText: '知道了'
    });
  },

  // 意见反馈
  handleFeedback() {
    wx.navigateTo({
      url: '/pages/feedback/feedback?source=profile',
      fail: () => {
        wx.showToast({
          title: '反馈页面开发中',
          icon: 'none'
        });
      }
    });
  },

  // 退出登录
  handleLogout() {
    wx.showModal({
      title: '确认退出',
      content: '确定要退出登录吗？',
      confirmText: '退出',
      confirmColor: '#ee0a24',
      success: (res) => {
        if (res.confirm) {
          // 清除登录状态
          wx.removeStorageSync('isLoggedIn');
          wx.removeStorageSync('userInfo');
          wx.removeStorageSync('loginTime');
          
          wx.showToast({
            title: '已退出登录',
            icon: 'success',
            duration: 1500,
            success: () => {
              setTimeout(() => {
                wx.reLaunch({
                  url: '/pages/login/login'
                });
              }, 1500);
            }
          });
        }
      }
    });
  },

  // 发送紧急报告
  sendEmergencyReport() {
    wx.showLoading({
      title: '发送中...'
    });

    // 模拟发送过程
    setTimeout(() => {
      wx.hideLoading();
      
      // 更新报警次数
      const currentCount = this.data.reportCount + 1;
      this.setData({
        reportCount: currentCount
      });
      wx.setStorageSync('reportCount', currentCount);
      
      wx.showToast({
        title: '报警信息已发送',
        icon: 'success',
        duration: 2000,
        success: () => {
          // 可选择是否拨打110
          setTimeout(() => {
            wx.showModal({
              title: '是否拨打110？',
              content: '报警信息已发送，是否需要拨打110电话？',
              confirmText: '拨打',
              cancelText: '不用',
              success: (res) => {
                if (res.confirm) {
                  wx.makePhoneCall({
                    phoneNumber: '110'
                  });
                }
              }
            });
          }, 1000);
        }
      });
    }, 2000);
  }
});